package com.realdolmen.whiteyellowcross.service;

import java.util.List;

import com.realdolmen.whiteyellowcross.datastore.PersonelDataStore;
import com.realdolmen.whiteyellowcross.model.Personel;

public class PersonelPersistenceBasedService implements PersonelService {

    private PersonelDataStore personelDataStore = null;

    private static PersonelService personelService;

    private PersonelPersistenceBasedService(PersonelDataStore personelDataStore) {
        this.personelDataStore = personelDataStore;
    }

    public static PersonelService getInstance(
            PersonelDataStore personelDataStore) {
        if (personelService == null) {
            synchronized (PersonelPersistenceBasedService.class) {

                if (personelService == null) {
                    personelService = new PersonelPersistenceBasedService(
                            personelDataStore);

                }
            }
        }
        return personelService;
    }

    @Override
    public void addPersonel(String name) {
        personelDataStore.addPersonel(name);
    }

    @Override
    public List<Personel> getPersonelList() {
        return personelDataStore.getPersonelList();
    }

    @Override
    public Personel getPersonel(String name) {
        return personelDataStore.getPersonel(name);
    }

    @Override
    public void deletePerson(String name) {
        personelDataStore.deletePerson(name);
    }

    @Override
    public int getTotalPersonel() {
        return personelDataStore.getTotalPersonel();
    }

    public PersonelDataStore getPersonelDataStore() {
        return personelDataStore;
    }

    public void setPersonelDataStore(PersonelDataStore personelDataStore) {
        this.personelDataStore = personelDataStore;
    }

}
